﻿'Params
'track (Required (unless mbid)] : The track name
'artist (Required (unless mbid)] : The artist name
'mbid (Optional) : The musicbrainz id for the track
'autocorrect[0|1] (Optional) : Transform misspelled artist and track names into correct artist and track names, returning the correct version instead. The corrected artist and track name will be returned in the response.
'limit (Optional) : Maximum number of similar tracks to return
'api_key (Required) : A Last.fm API key.
'Auth
'This service does not require authentication. 

Public Structure TrackGetSimilarResponse

End Structure

Public Class TrackGetSimilar
	Inherits BaseRequest
    Dim artist As String = ""
    Dim album As String = ""
    Dim mbid As String = ""
    Dim lang As String = ""
    Dim autocorrect As String = ""
    Dim page As String = ""
    Dim limit As String = ""

	Public xmlresponse As XDocument = Nothing

	Public Sub New()
        Me.artist = artist
        Me.album = album
        Me.mbid = mbid
        Me.lang = lang
        Me.autocorrect = autocorrect
        Me.page = page
        Me.limit = limit
	End Sub

	Public Sub sendRequest()
        InitializeMembers("album.getInfo")

        AddMember("artist", artist, String.IsNullOrEmpty(mbid))
        AddMember("album", album, String.IsNullOrEmpty(mbid))
        AddMember("mbid", mbid, False)
        AddMember("lang", lang, False)
        AddMember("autocorrect", autocorrect, False)
		AddMember("username", My.Settings.user_name, False)
        AddMember("api_key", My.Settings.api_key, False)
        xmlresponse = sendPOSTResponse()
	End Sub

    Public Function getResponse() As TrackGetSimilarResponse
        Dim response As New TrackGetSimilarResponse
        'response.album = New Album(xmlresponse.<lfm>.<album>.First)
        Return response
    End Function
End Class
